The present invention relates to a compile method for generating object program codes from source program codes in a computer.
Conventionally, in order to increase the execution speed at which an object program is executed in a computer, it has been known to be suitable that the object program code includes a reduced number of variables. To this end, a technology called a copy propagation has been developed as a compiler technology. For details about the copy propagation, refer to, for example, the "Principles of Compiler Design", Addison Wesley, pp. 487-489.
According to the copy propagation, when there exist a first statement and a second statement containing a first variable defined by the first statement to be used by the second statement, the first variable in the second statement is replaced with the right side of the first statement and the first statement is eliminated, thereby deleting the first variable from the source program. According to the paper above, the copy propagation technique is used to eliminate a variable A which is defined only by a single term of a variable B, for example, in A=B presented as the first statement. When the characteristic of the copy propagation technique is taken into consideration, it is desirable to use an expression A=B+C so as to apply the copy propagation technique to the elimination of a variable defined by a polynomial expression of a plurality of variables B and C. Results of study made by the present inventor have shown that when the copy propagation technique is unconditionally used to eliminate a variables defined by a polynomial expression, the execution speed of the object codes generated thereafter in a computer is lowered or the correct result cannot be obtained by the object codes in some cases.